package com.tianyadu.security.core.social.qq.connet;

import com.tianyadu.security.core.social.qq.api.QQ;
import com.tianyadu.security.core.social.qq.api.QQUserInfo;
import org.springframework.social.connect.ApiAdapter;
import org.springframework.social.connect.Connection;
import org.springframework.social.connect.ConnectionValues;
import org.springframework.social.connect.UserProfile;

/**
 * @FileName: QQAdapter 适配器，用于将不同服务提供商的个性化用户信息映射到 {@link Connection}
 * @Description:
 * @author: xueyj
 * @create: 2018-12-14 19:35
 */
public class QQAdapter implements ApiAdapter<QQ> {

    /**
      * @Description: 测试服务是否可用
      * @param:
      * @return:
      * @author:
      * @date:   2018/12/14 19:36
      */
    @Override
    public boolean test(QQ qq) {
        // 测试服务是否可用
        return true;
    }

    /**
      * @Description: 获取QQ用户信息
      * @param:
      * @return:
      * @author:
      * @date:   2018/12/14 19:37
      */
    @Override
    public void setConnectionValues(QQ api, ConnectionValues values) {
        QQUserInfo userInfo = api.getUserInfo();
        //  用户显示名称
        values.setDisplayName(userInfo.getNickname());
        //  用户显示头像
        values.setImageUrl(userInfo.getFigureurl_qq_1());
        // 主页地址，像微博一般有主页地址
        values.setProfileUrl(null);
        // 服务提供商返回的该user的openid,一般来说这个openid是和你的开发账户也就是appid绑定的
        values.setProviderUserId(userInfo.getOpenId());
    }

    @Override
    public UserProfile fetchUserProfile(QQ qq) {
        // TODO Auto-generated method stub
        return null;
    }

    @Override
    public void updateStatus(QQ qq, String s) {
        //do noting
    }
}